Collective Optimization
نویسندگان
چکیده
Iterative compilation is an efficient approach to optimize programs on rapidly evolving hardware, but it is still only scarcely used in practice due to a necessity to gather a large number of runs often with the same data set and on the same environment in order to test many different optimizations and to select the most appropriate ones. Naturally, in many cases, users cannot afford a training phase, will run each data set once, develop new programs which are not yet known, and may regularly change the environment the programs are run on. In this article, we propose to overcome that practical obstacle using Collective Optimization, where the task of optimizing a program leverages the experience of many other users, rather than being performed in isolation, and often redundantly, by each user. Collective optimization is an unobtrusive approach, where performance information obtained after each run is sent back to a central database, which is then queried for optimizations suggestions, and the program is then recompiled accordingly. We show that it is possible to learn across data sets, programs and architectures in non-dynamic environments using static function cloning and run-time adaptation without even a reference run to compute speedups over the baseline optimization. We also show that it is possible to simultaneously learn and improve performance, since there are no longer two separate training and test phases, as in most studies. We demonstrate that extensively relying on competition among pairs of optimizations (program reaction to optimizations) provides a robust and efficient method for capturing the impact of optimizations, and for reusing this knowledge across data sets, programs and environments. We implemented our approach in GCC and will publicly disseminate it in
منابع مشابه
Optimization Rules for Programming with Collective Operations
We study how several collective operations like broadcast, reduction, scan, etc. can be composed efficiently in complex parallel programs. Our specific contributions are: (1) a formal framework for reasoning about collective operations; (2) a set of optimization rules which save communications by fusing several collective operations into one; (3) performance estimates, which guide the applicati...
متن کاملCollective Tuning Initiative: automating and accelerating development and optimization of computing systems
Computing systems rarely deliver best possible performance due to ever increasing hardware and software complexity and limitations of the current optimization technology. Additional code and architecture optimizations are often required to improve execution time, size, power consumption, reliability and other important characteristics of computing systems. However, it is often a tedious, repeti...
متن کاملCollective Tuning Initiative
Computing systems rarely deliver best possible performance due to ever increasing hardware and software complexity and limitations of the current optimization technology. Additional code and architecture optimizations are often required to improve execution time, size, power consumption, reliability and other important characteristics of computing systems. However, it is often a tedious, repeti...
متن کاملAn optimization algorithm for multimodal functions inspired by collective animal behavior
Interest in multimodal function optimization is expanding rapidly since real-world optimization problems often demand locating multiple optima within a search space. This article presents a new multimodal optimization algorithm named as the Collective Animal Behavior (CAB). Animal groups, such as schools of fish, flocks of birds, swarms of locusts and herds of wildebeest, exhibit a variety of b...
متن کاملA Survey of Methods for Collective Communication Optimization and Tuning
New developments in HPC technology in terms of increasing computing power on multi/many core processors, high bandwidth memory/IO subsystems and communication interconnects, pose a direct impact on software and runtime system development. These advancements have become useful in producing high-performance collective communication interfaces that integrate efficiently on a wide variety of platfo...
متن کاملThe Collective Learning Procedure
This paper proposes the collective learning procedure. Collective learning uses a genetic algorithm to quickly sample the search space and allows each individual to perform local optimization steps. This hybrid scheme yields very good performance in the eld of continuous parameter optimization and is especially suited for optimizing multimodal functions. Furthermore, this paper shows that colle...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2009